﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Dialog
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void btnOpen_Click(object sender, EventArgs e)
        {
            //点击弹出对话框
            var dialog = new OpenFileDialog();
            //设置对话框属性
            dialog.Title = "请选择要打开的文本文件";//标题
            dialog.Multiselect = true;//支持对话框多选
            dialog.InitialDirectory = @"d:\bbb";//打开默认目录
            dialog.Filter = "文本文件|*.*";
            //展开对话框
            dialog.ShowDialog();

            //获得选中文件的路径
            var paths = dialog.FileNames;
            if (paths.Length == 0)
            {
                MessageBox.Show("请选择一个文件夹");
                return;
            }
            //读取二进制文件，显示在文本框
            textBox1.Text = string.Empty;
            foreach (var path in paths)
            {
                using (FileStream fsRead = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Read))
                {
                    byte[] buffer = new byte[1024 * 1024 * 5];
                    //实际读取的字节数
                    int r = fsRead.Read(buffer, 0, buffer.Length);

                    textBox1.Text += Encoding.UTF8.GetString(buffer, 0, r) + "\r\n\r\n";
                }
            }
        }

        private void btnSave_Click(object sender, EventArgs e)
        {
            //通过对话框选择保存的路径
            var dialog = new SaveFileDialog();
            //设置对话框属性
            dialog.Title = "请选择要打开的文本文件";//标题
            dialog.InitialDirectory = @"d:\bbb";//打开默认目录
            dialog.Filter = "文本文件|*.*";
            //展开对话框
            dialog.ShowDialog();
            //二进制的写入
            var path = dialog.FileName;
            using(FileStream fsWrite =new FileStream(path,FileMode.OpenOrCreate,FileAccess.Write))
            {
                byte[] buffer = Encoding.UTF8.GetBytes(textBox1.Text);
                fsWrite.Write(buffer, 0, buffer.Length);
            }
            MessageBox.Show("保存成功");
            
        }

        private void btnFont_Click(object sender, EventArgs e)
        {
            //选择字体
            //打开字体对话框
            var fd = new FontDialog();
            fd.ShowDialog();
            //将选好的字体赋给文本框
            textBox1.Font = fd.Font;
        }

        private void btnColor_Click(object sender, EventArgs e)
        { 
            //选择颜色
            var cd = new ColorDialog();
            cd.ShowDialog();
            //将选好的颜色赋给文本框
            textBox1.ForeColor = cd.Color;
        }

        private void btnClear_Click(object sender, EventArgs e)
        {
            textBox1.Text = "";
        }
    }
}
